1. Field of Invention
The invention relates generally to software environments, and, more specifically, to deploying software components.
2. Background
Software environments require that software components such as business applications, upgrades, configurations, and so on must be deployed before they are run on an environment. When an application is deployed on a system, it is referred to as a deployed component. Deployed components include one or more modules that contain source code and application resources. The smallest deployable unit of an application is an application module. Application modules are packed for distribution into application archives. If a modification is made to any part of a module, the whole module must be redeployed. The latter single module approach is suitable for application development and testing. In a large software environment, modifications to a system cannot be applied module by module because of time and resource constraints. For example, once a module is applied to a system, the system cannot provide any information about current version and compatibility state of an affected application. This in turn makes the analysis of runtime problems due to incompatibility issues substantially more difficult.
In another aspect, application modules often use interfaces or parts of other modules or libraries. To run properly, such modules need all dependent parts to be deployed and active. These dependencies have to be declared by the application and processed by the deployment services. Application modules also depend on the runtime environment because they use its services and communication interfaces. This results in the platform release dependence. Such dependencies must also be declared by the application and processed by the deployment service.
In the context of Java applications, the application resources of a Java application are packaged into one Software Component Archive (hereinafter “SCA”). An SCA contains two types of deployable objects. These are module and configuration archives. Module archives contain the java code of the application and all runtime resources. The configuration archives contain data for configuration management. Modules and configurations are both application resources. However, configurations have specifics that require separate treatment. Modules and configurations are packed in Java archive files (hereinafter “JAR”) in the software component level of the SCA and specify deployment descriptors as main attributes in a corresponding MANIFEST.MF file in the JAR. The MANIFEST.MF file is a file that contains metadata for the SCA.